$(function(){
    var appAdd = new AppAdd();
    appAdd.init().init();
});
    
    
function AppAdd(){
    this.init = function(){
        return APPADD;
    };
    var APPADD = {
        init : function(){
            APPADD.funs.initUpload();
            APPADD.funs.initContentImgUpload();
            APPADD.listeners.bindEvents();
        },
        listeners : {
            bindFormSubmit : function(){
                $("#btn_notice_add_submit").click(function(){
                    var $form = $("#frm_app");
                    
                    var typeId = $.trim($("#hid_type_id").val());
                    if('' == typeId){
                        alert('未选择类型');
                        
                        return;
                    }
                    
                    var icon = $.trim($("#hid_app_icon").val());
                    if('' == icon){
                        alert('未上APP传缩略图');
                        
                        return;
                    }
                    
                    $form.validate();
                    
                    $form.submit();
                });
            },
            bindEvents : function(){
                $.util.foreachFunction(this, [ "bindEvents" ]);
            },
            bindUpload : function(){
                $('#btn_app_icon_upload_enter').click(function(){
                    $('#btn_app_icon_upload').uploadifyUpload();
                });
                
                $('#btn_app_img_upload_enter').click(function(){
                    $('#btn_app_img_upload').uploadifyUpload();
                });
                
                $('#btn_app_img_upload_clear').click(function(){
                    $('#hid_app_content_img').val("");
                });
            },
            //弹出确定类型Dialog
            bindChooseTypeDialog : function(){
                $('#btn_app_type').click(function(){
                    $dialog = $('#div_app_type_dialog');
                    
                    //禁用当前按钮
                    //APPADD.funs.setElementEnabled($(this), false);
                    //当前页面非第一次弹出
                    if(!$.isEmptyObject($dialog.attr('checkbox'))){
                        APPADD.funs.getAppTypeDialog($dialog, null, true);
                        return;
                    }
                    $.post(contextPath + '/Type/findTypeAll', {}, function(jsonResult){
                        //console.debug(jsonResult);
                        if(0 == jsonResult.status){
                            alert('加载数据失败');
                            return;
                        }
                        
                        APPADD.funs.getAppTypeDialog($dialog, jsonResult.data, false);
                        
                        var typeIdText = $("#hid_type_id").val();
                        if('' != $.trim(typeIdText)){
                            APPADD.funs.initTypeId($dialog, typeIdText.split(','));
                        }
                    }, 'json');
                });
            }
        },
        funs  : {
            initUpload : function(){
                $('#btn_app_icon_upload').uploadify({
                    'uploader'  : SYSTEM_DATA.public_path + '/js/plugin/Uploadify/uploadify.swf',
                    'script'    : SYSTEM_DATA.contextPath + '/File/upload',
                    'cancelImg' : SYSTEM_DATA.public_path + '/js/plugin/Uploadify/cancel.png',
                    'folder'    : '/uploads',
                    'removeCompleted' : true,
                    'auto'       : false,
                    'multi': false,
                    'fileExt' : '*.jpg;*.jpeg;*.png;*.gif',
                    'fileDesc' : '可上传的图片文件',
                    'sizeLimit' : 1024 * 1024 * 30,
                    //'buttonText' : '上传',
                    'onComplete'  : function(event, ID, fileObj, response, data) {
                        //console.debug(response);
                        //console.debug(data);
                        response = $.parseJSON(response);
                        //var lastId = response.data;
                        //                        console.debug(response);
                        //$fileId = $('#hid_file_id');
                        $("#hid_app_icon").val(response.data.thumb_url);
                    //$fileId.val('' == $fileId.val() ? lastId : $fileId.val() + ',' + lastId);
                    },
                    'onError' : function(event,ID,fileObj,errorObj) {
                    //                        console.debug(errorObj);
                    }
                });
                
                
            },
            initContentImgUpload : function(){
                $('#btn_app_img_upload').uploadify({
                    'uploader'  : SYSTEM_DATA.public_path + '/js/plugin/Uploadify/uploadify.swf',
                    'script'    : SYSTEM_DATA.contextPath + '/File/upload',
                    'cancelImg' : SYSTEM_DATA.public_path + '/js/plugin/Uploadify/cancel.png',
                    'folder'    : '/uploads',
                    'removeCompleted' : true,
                    'auto'       : false,
                    'multi': false,
                    'fileExt' : '*.jpg;*.jpeg;*.png;*.gif',
                    'fileDesc' : '可上传的图片文件',
                    'sizeLimit' : 1024 * 1024 * 30,
                    //'buttonText' : '上传',
                    'onComplete'  : function(event, ID, fileObj, response, data) {
                        //console.debug(response);
                        //console.debug(data);
                        response = $.parseJSON(response);
                        //var lastId = response.data;
                        //                        console.debug(response);
                        //$fileId = $('#hid_file_id');
                        $("#hid_app_content_img").val($("#hid_app_content_img").val() + response.data.path + ";");
                    //$fileId.val('' == $fileId.val() ? lastId : $fileId.val() + ',' + lastId);
                    },
                    'onError' : function(event,ID,fileObj,errorObj) {
                    //                        console.debug(errorObj);
                    }
                });
            },
            
            //弹出选择类型Dialog
            getAppTypeDialog : function($dialog, data, hasCheckbox){
                var checkboxs = [];
                if(!hasCheckbox){
                    $.each(data, function(index, t){
                        checkboxs.push("<div class='cbDiv'><label><input type = 'checkbox' value = '"+t.id+"'/>" + t.name + "</label></div>");
                    });
                    //标识
                    $dialog.attr('checkbox', 'checkbox');    

                    $dialog.append(checkboxs.join(''));
                }
                $dialog.dialog({
                    'title' : '选择类型',
                    'resizable': false,
                    'width' : 550,
                    'height':450,
                    'modal': true,
                    'buttons': {
                        "确定": function() {
                            var typeId = APPADD.funs.getElementValue($dialog.find(':checked'));
                                    
                            //console.debug(typeId);
                            $('#hid_type_id').val(typeId);
                            
                            //APPADD.funs.setElementEnabled($('#btn_app_type'), true);
                            $( this ).dialog( "close" );
                        },
                        '取消': function() {
                            //APPADD.funs.setElementEnabled($('#btn_app_type'), true);
                            $( this ).dialog( "close" );
                        }
                    }
                });
            },
            getElementValue : function($elements){
                var elementValue = [];
                $.each($elements, function(index, element){
                    elementValue.push($(element).val());
                });
                return elementValue.join(',');
            },
            
            //设置组件是否禁用
            setElementEnabled : function($element, enabled){
                if(enabled){
                    $element.removeAttr('disabled');
                }else{
                    $element.attr('disabled', 'disabled');
                }
            },
            
            /*
             *修改App信息时点类型弹出显示已选中的类型
             **/
            initTypeId : function($dialog, typeId){
                var $chk = $dialog.find(':checkbox');
                $.each($chk, function(index, checkbox){
                    if(-1 != $.inArray($(checkbox).val(), typeId)){//alert($(checkbox).val());
                        $(checkbox).attr('checked', 'checked');
                    }
                });
            }
        }
    };
}